The Universal Serial Bus (USB) standard provides communication protocols for interfacing between a host and its peripheral devices. For example, a personal computer implementing the Microsoft Windows® operating system may use the USB standard for communicating with a keyboard, a compact disc (CD) player, or a USB flash drive. The USB standard may also be implemented in Macintosh® and Linux® operating systems.
The USB standard specifies how a peripheral device identifies itself to its host. When a USB peripheral device is connected to a host, it receives power from the host, and the host recognizes that the USB peripheral device is attached. The host then reads the peripheral device's class, subclass, etc. according to the USB standard to determine how to interface appropriately. For example, if the host determines that the peripheral device is a keyboard, the host associates the appropriate driver software with data sent from the keyboard. Details of this procedure can be found in the documentation for the USB standard.
CD players and USB flash drives belong to the USB mass storage device class, the devices in which class offer functionality not offered by peripheral devices in the human interface device (HID) class, the class that includes the keyboard. CDs and USB flash drives can store thereon applications for execution, and, for the CD players, the USB standard provides the option of including specially-designated files on the CD, which enable the application to launch automatically after the CD is loaded into the CD player. (Details of this procedure also can be found in documentation for the USB standard.)
The USB standard does not provide the option of automatically launching a program residing on a USB flash drive after the USB flash drive is simply connected to the host. Instead, the host must receive an additional command, which is an added step for the user if he or she must provide the command. To relieve the user of the burden, a host could be configured to provide the additional command upon sensing connection with a USB flash drive, but the automatic launching capability would be limited to only those hosts that are specially-configured.
Accordingly, it would be desirable to configure a USB flash drive so that, upon connection to a host supporting the USB standard, or upon restarting the host if the USB flash drive were already connected, the USB flash drive would automatically launch an application residing in its memory.